﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Partial Class reportes_consultaEstadoVentas
    Inherits System.Web.UI.Page

    Private ventas As List(Of EseparacionVenta) = Nothing
    Private ventaDetalles As List(Of EseparacionVentaDetalle)
    Private iTipoCambio As Decimal
    Private tjsMensaje As String

#Region "       Formulario                          "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarVendedor()
        End If
    End Sub
    Private Sub cargarVendedor()
        selVendedor.DataSource = Rvendedor.SeleccionarXEstado(Me.Master.descEmpresa, True)
        selVendedor.DataTextField = "NombresCompletos"
        selVendedor.DataValueField = "idVendedor"
        selVendedor.DataBind()
        upVendedor.Update()
    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If Me.txtTipoCambio.Text.Trim = "" Then
            tjsMensaje = "<script>javascript:alert(' Por favor ingrése el Tipo de Cambio de Hoy.');</script>)"
            Controls.Add(New LiteralControl(tjsMensaje))
            txtTipoCambio.Focus()
            Exit Sub
        End If

        If txtFchInicio.Text.Length > 0 AndAlso txtFchFin.Text.Length > 0 Then
            Dim venta As New EseparacionVenta
            With venta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .Evendedor = New Evendedor
                .idVendedor = selVendedor.Value
                .fchInicio = txtFchInicio.Text
                .fchFin = txtFchFin.Text
                .filtro = txtCliente.Value
            End With
            ventas = RseparacionVenta.ReporteVenta(Me.Master.descEmpresa, False, venta)
            Session("ventasLista") = ventas
            ventaDetalles = RseparacionVentaDetalle.ReporteVentaDetalle(Me.Master.descEmpresa, False, venta)
            Session("ventasListaDetalle") = ventaDetalles
            If Not ventas Is Nothing Then
                egvSeparacionVenta.DataSource = ventas
                egvSeparacionVenta.DataBind()
                upnSeparacionVenta.Update()
                lblCantidadTotalSeparación.Text = String.Format(": {0}", ventas.Count.ToString)
                lblTotalPrecioVenta.Text = String.Format(": {0:###,###,##00.00}", (From sep As EseparacionVenta In ventas _
                                                                                   Select sep.totalPrecioVenta).Sum())
            End If
        End If
    End Sub
    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
        Me.lblCantidadTotalSeparación.Text = "0"
        Me.lblTotalPrecioVenta.Text = "0.0"
        txtFchInicio.Text = ""
        txtTipoCambio.Text = ""
        'upFchInicio.Update()
        txtFchFin.Text = ""
        'upFchFin.Update()
        egvSeparacionVenta.DataSource = Nothing
        upnSeparacionVenta.Update()
        Me.selVendedor.Value = "0"
        upVendedor.Update()
    End Sub

    Private Function CargarReporteEstadoVenta(ByVal descEmpresa As String) As DataTable
        Dim resultado As DataTable = Nothing
        Dim dt As DataTable = Nothing
        Dim da As SqlDataAdapter = Nothing

        Dim pIdProyecto As Integer
        Dim pIdEtapa As Integer
        Dim pfchInicio As String
        Dim pfchFin As String
        Dim pFiltro As String
        Dim pVendedor As String

        pIdProyecto = Me.Master.idProyecto
        pIdEtapa = Me.Master.idEtapa
        pfchInicio = Me.txtFchInicio.Text
        pfchFin = Me.txtFchFin.Text
        pFiltro = Me.txtCliente.Value.Trim
        pVendedor = Me.selVendedor.Value

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ReporteVentasEstado_EPAZCENPR", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pIdProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pIdEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pfchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pfchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pFiltro
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor
                Try
                    cn.Open()
                    dt = New DataTable()
                    da = New SqlDataAdapter(cmd)
                    da.Fill(dt)
                    resultado = dt
                Catch ex As Exception
                    resultado = Nothing
                    Throw
                End Try
            End Using
        End Using
        Return resultado
    End Function


    Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
        If Me.txtTipoCambio.Text.Trim = "" Then
            tjsMensaje = "<script>javascript:alert(' Por favor ingrése el Tipo de Cambio de Hoy.');</script>)"
            Controls.Add(New LiteralControl(tjsMensaje))
            txtTipoCambio.Focus()
            Exit Sub
        End If

        Try
            Dim dtSeparaciones As New DataTable
            dtSeparaciones = CargarReporteEstadoVenta(Me.Master.descEmpresa)
            Dim contador As Integer = 1
            Dim dTipoCambio As Decimal = 0
            Dim strTipoCambio As String = ""
            If dtSeparaciones.Rows.Count Then


                Dim fileName As String = "ConsultaEstadoVentas{0}.xls"
                fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
                Dim Response As HttpResponse = HttpContext.Current.Response
                Response.ContentType = "application/vnd.ms-excel"
                Response.Charset = "UTF-8"
                Response.ContentEncoding = System.Text.Encoding.Default
                Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

                Response.Write("Item") : Response.Write(vbTab)
                Response.Write("Torre") : Response.Write(vbTab)
                Response.Write("Departamento") : Response.Write(vbTab)
                Response.Write("Estac 1") : Response.Write(vbTab)
                Response.Write("Estac 2") : Response.Write(vbTab)
                Response.Write("Dep 1") : Response.Write(vbTab)
                Response.Write("Dep 2") : Response.Write(vbTab)
                Response.Write("Area Dpto") : Response.Write(vbTab)
                Response.Write("Area Terraza") : Response.Write(vbTab)
                Response.Write("Nombre del Cliente") : Response.Write(vbTab)
                ''Situacion
                Response.Write("Fecha de Separación") : Response.Write(vbTab)
                Response.Write("Venta") : Response.Write(vbTab)
                Response.Write("Situación Banco") : Response.Write(vbTab)
                Response.Write("Fecha Solicitud CH") : Response.Write(vbTab)
                Response.Write("Fecha de Aprob. Crédito") : Response.Write(vbTab)
                Response.Write("Fecha de Firma de Contrato") : Response.Write(vbTab)
                ''Financiamiento
                Response.Write("Forma de Pago") : Response.Write(vbTab)
                Response.Write("Banco Financiamiento") : Response.Write(vbTab)
                Response.Write("Cuota Inicial %") : Response.Write(vbTab)
                Response.Write("Tipo de Crédito") : Response.Write(vbTab)
                ''Datos de Venta
                Response.Write("Promoción") : Response.Write(vbTab)
                Response.Write("Dscto Prin.") : Response.Write(vbTab)
                Response.Write("Dscto VB1") : Response.Write(vbTab)
                Response.Write("Dscto VB2") : Response.Write(vbTab)
                Response.Write("Dscto VB3") : Response.Write(vbTab)
                ''Datos Estadísticos
                Response.Write("Edad (Rango)") : Response.Write(vbTab)
                Response.Write("Distrito de Proceden.") : Response.Write(vbTab)
                Response.Write("Canal de venta") : Response.Write(vbTab)
                Response.Write("Inversión/ Vivienda") : Response.Write(vbTab)
                ''Nada
                Response.Write("Referido de") : Response.Write(vbTab)
                ''Ejecutivo
                Response.Write("Area") : Response.Write(vbTab)
                Response.Write("Vendedor Paz-Centenario") : Response.Write(vbTab)
                Response.Write("Banco Ejecutivo") : Response.Write(vbTab)
                Response.Write("Promotor Ejecutivo") : Response.Write(vbTab)
                ''Precio de Venta
                Response.Write("Dpto.P.Real Nuevos Soles") : Response.Write(vbTab)
                Response.Write("Dpto.P.Final Nuevos Soles") : Response.Write(vbTab)
                Response.Write("Estac. Nuevos Soles") : Response.Write(vbTab)
                Response.Write("Estac 2 Nuevos Soles") : Response.Write(vbTab)
                Response.Write("Dep 1 Nuevos Soles") : Response.Write(vbTab)
                Response.Write("Dep 2 Nuevos Soles") : Response.Write(vbTab)
                ''Last 
                Response.Write("Total (Nuevos Soles)") : Response.Write(vbTab)
                Response.Write("Total ($)") : Response.Write(vbTab)
                Response.Write("SEGUROS") : Response.Write(vbTab)
                Response.Write("Notas") : Response.Write(vbTab)
                Response.Write(vbCrLf)

                For Each Fila As DataRow In dtSeparaciones.Rows
                    Dim valor As String

                    '''''First
                    '' valor = Fila("ITEM").ToString
                    Response.Write(contador.ToString()) : Response.Write(vbTab)

                    valor = Fila("TORRE").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DEPARTAMENTO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("ESTACIONAMIENTO_1").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("ESTACIONAMIENTO_2").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DEPOSITO_1").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DEPOSITO_2").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    'valor = String.Format("{0:#,###,##0.00}", Fila("AREA_OCUPADA").ToString)
                    'Response.Write(valor) : Response.Write(vbTab)

                    valor = String.Format("{0:#,###,##0.00}", Fila("AREA_DPTO").ToString) + " m2"
                    ''valor = Fila("AREA_DPTO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = String.Format("{0:#,###,##0.00}", Fila("AREA_TERRAZA").ToString) + " m2"
                    ''valor = Fila("AREA_TERRAZA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("CLIENTE").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    '''''Situacion

                    valor = Fila("FECHA_SEPARACION").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("ESTADO_VENTA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("BANCO_SEPARACION").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("FECHA_SOLICITUD_CH").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("FECHA_APROBACION_CR").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("FECHA_FIRMA_CONTRATO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    '''''Financiamiento

                    valor = Fila("FORMA_PAGO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("BANCO_FINANCIAMIENTO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    'valor = Fila("CUOTA_INICIAL").ToString
                    valor = Fila("CUOTA_INICIAL").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("TIPO_CREDITO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    '''''Datos Venta

                    valor = Fila("PROMOCION").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DSCTO_PRINCIPAL").ToString + " %"
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DSCTO_VB_1").ToString + " %"
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DSCTO_VB_2").ToString + " %"
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DSCTO_VB_3").ToString + " %"
                    Response.Write(valor) : Response.Write(vbTab)

                    '''''Datos Venta

                    valor = Fila("EDAD").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("DISTRITO_PROCEDENCIA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("CANAL_VENTA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("INVERSION_VIVIENDA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    ''''Nothing

                    valor = Fila("REFERIDO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    ''''Ejecutivo

                    valor = Fila("AREA").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("VENDEDOR_EPAZCEN").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("BANCO_EJECUTIVO").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("PROMOTOR").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    ''''Precio de Venta

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("DPTO_PREC_VENTA_REAL").ToString)
                    ''valor = Fila("DPTO_PREC_VENTA_REAL").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("DPTO_PREC_VENTA_FINAL").ToString)
                    ''valor = Fila("DPTO_PREC_VENTA_FINAL").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("PREC_VENTA_ESTAC").ToString)
                    ''valor = Fila("PREC_VENTA_ESTAC").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("PREC_VENTA_ESTAC2").ToString)
                    ''valor = Fila("PREC_VENTA_ESTAC").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("PREC_VENTA_DEPO1").ToString)
                    ''valor = Fila("PREC_VENTA_ESTAC").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("PREC_VENTA_DEPO2").ToString)
                    ''valor = Fila("PREC_VENTA_ESTAC").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    ''''Last
                    valor = "S/. " + String.Format("{0:#,###,##0.00}", Fila("TOTAL_SOLES").ToString)
                    ''valor = Fila("TOTAL_SOLES").ToString
                    Response.Write(valor) : Response.Write(vbTab)
                    dTipoCambio = Convert.ToDecimal(Me.txtTipoCambio.Text)
                    strTipoCambio = ""
                    dTipoCambio = dTipoCambio * Fila("TOTAL_DOLARES")
                    strTipoCambio = dTipoCambio.ToString
                    strTipoCambio = "$ " + String.Format("{0:#,###,##0.00}", strTipoCambio)
                    ''valor = Fila("TOTAL_DOLARES").ToString
                    Response.Write(strTipoCambio) : Response.Write(vbTab)

                    valor = Fila("SEGUROS").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    valor = Fila("NOTAS").ToString
                    Response.Write(valor) : Response.Write(vbTab)

                    'valor = String.Format("{0:#,###,##0.00}", Fila("PRECIO_DEPA").ToString)
                    'Response.Write(valor) : Response.Write(vbTab)

                    'valor = String.Format("{0:#,###,##0.00}", Fila("PREC_ESTAC_1").ToString)
                    'Response.Write(valor) : Response.Write(vbTab)
                    contador = contador + 1

                    Response.Write(vbCrLf)
                Next
                Response.End()
            Else
                Dim jsMensaje As String = Nothing
                jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            End If
        Catch ex As Exception
            Dim jsMensajeTwo As String = Nothing
            jsMensajeTwo = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
        End Try

    End Sub


#End Region

#Region "       Venta Detalle                       "
    Protected Sub egvSeparacionVenta_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles egvSeparacionVenta.PageIndexChanging
        ventas = Session("ventasLista")
        If Not ventas Is Nothing Then
            egvSeparacionVenta.DataSource = ventas
            egvSeparacionVenta.PageIndex = e.NewPageIndex
            egvSeparacionVenta.DataBind()
            upnSeparacionVenta.Update()
        End If
    End Sub
    Protected Sub egvSeparacionVenta_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
        Handles egvSeparacionVenta.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim egvDetalleSeparacion As GridView = CType(e.Row.FindControl("egvDetalleSeparacion"), GridView)
            AddHandler egvDetalleSeparacion.RowCreated, AddressOf egvDetalleSeparacion_RowCreated
            If strUidSeparacion.Length > 0 Then
                'ventaDetalles = Session("ventasListaDetalle")
                ventaDetalles = Session("ventasListaDetalle")
                Dim LVentaDetalles = From vd In ventaDetalles _
                                        Where vd.idProyecto.ToString = Me.Master.idProyecto AndAlso _
                                              vd.idEtapa = Me.Master.idEtapa AndAlso _
                                              vd.idSeparacionVenta = CType(strUidSeparacion, Int32) _
                                        Select vd

                If ventaDetalles.Count > 0 Then
                    egvDetalleSeparacion.DataSource = LVentaDetalles
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleSeparacion_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
#End Region

End Class